<?php
include_once '../gerenciadores/AutoloadGerenciadores.php';

class RepositorioCoordenadores{
	private static $intancia;

	private function __construct(){
	}
	
	
	public static function getInstancia(){
		if(isset(self::$intancia)){
			$c = __CLASS__;
			self::$intancia = new $c;
		}
		return self::$intancia;
	}
	
	
	public static function adicionaCoordenador(Pessoa $coordenador, Turma $turma){
		$curso = $turma->getCurso();
		
		$sql = "UPDATE `tpessoa` SET confirma='1' WHERE `idpessoa` LIKE '".$coordenador->getIdPessoa()."';";
		$sql .= "INSERT INTO `tcadastro`(`idpessoa`, `idcurso`, `idturma`,`tipo_vinculo`)
			VALUES (
			'".$coordenador->getIdPessoa()."','".$curso->getIdCurso()."', '".$turma->getIdTurma()."','4');";
								
		Conexao::executaSql($sql);
		
	}//Fim adiciona coordenador
	
	
	
	public static function getTabelaCoordenadores(){
		$sql = "SELECT * FROM `tpessoa` WHERE tipo_vinculo = 4";
		$tabela = tabelaSql($sql);
		$tabAuxiliar = array();
		for ($i=0; $i<count($tabela); $i++){
			$coordenador = new Coordenador();
			$coordenador = $this->getCoordenador(array_column($tabela[$i],"idpessoa"));
			array_push($tabAuxiliar, $coordenador);
		}
		
		return $tabAuxiliar;
	}
	
	
	public static function alteraCoordenador(Coordenador $coordenador, Turma $turma, Curso $curso){
		
		RepositorioDePessoas::atualizaPessoa($coordenador); 
		
		try{
			$sql = "UPDATE `tcadastro` SET `idturma`='".$turma->getIdTurma().
			"WHERE `idpessoa`= '".$coordenador->getIdPessoa()."' AND `idcurso`='".$curso->getIdCurso()."';";
			
			$sql = $sql."UPDATE `t_matricula` SET `matricula`=".$coordenador->getMat()."
				 WHERE `idpessoa`='".$coordenador->getIdPessoa()."';";
			
			Conexao::executaSql($sql);
		}catch(AlunoAtualizaException $atualizaException){
			echo $atualizaException->getMessage();
		}
	}
	
	public static function deletaCoordenador(int $idCoordenador){
		if(!is_null($idAluno)){
			try{
				$sql = $sql."DELETE FROM tcadastro WHERE idpessoa = '".$idAluno."' WHERE `idturma` IS NULL;";
				$sql = $sql."DELETE FROM tendereco WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM t_matricula WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM tidentidade WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM tcadastro WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM tdependentes WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM ttelefone WHERE idpessoa = '".$idAluno."';";
				$sql = $sql."DELETE FROM tendereco WHERE idpessoa = '".$idAluno."'";
				Conexao::executaSql($sql);
			}catch(PessoaDeletaException $deletaException){
				echo $deletaException->getMessage();
			}
		}
	}
	
public static function getCoordenador($idTurma){
		if(!is_null($idTurma)){
			$sql = "SELECT pes.idpessoa, pes.cargo, pes.instituicao, pes.nome, pes.cpf,pes.senha, cad.tipo_vinculo,
				cad.idturma, cad.idcurso
				 FROM tpessoa pes
				INNER JOIN tcadastro cad ON (cad.idpessoa = pes.idpessoa)
				WHERE cad.idturma LIKE '".$idTurma."' AND cad.tipo_vinculo=4;";
			$tabela = Conexao::tabelaSql($sql);
			$coordenador = new Coordenador(array_column($tabela, "cpf"), array_column($tabela, "nome"), array_column($tabela,"cargo"), array_column($tabela, "instituicao"));
			$coordenador->setIdPessoa(array_column($tabela,"idpessoa"));
			$coordenador->setSenha(array_column($tabela, "senha"));
			
			
			return $coordenador;
		}
	}

}
?>